#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include "dniwroku.h"

void pobierz_dane(struct userdata *input) {
	char miesiac[20];

	printf("dzien: ");
	scanf("%d", &input->dzien);
	printf("miesiac: ");
	scanf("%s", miesiac);
	printf("rok: ");
	scanf("%d", &input->rok);
	input->is_num = 0;

	if(strlen(miesiac) >= 3) {
		MaleLitery(miesiac);
		strcpy(input->mies_nazw, miesiac);
	}
	else {
		input->nmies = atoi(miesiac);
		input->is_num = 1;
	}
}
int oblicz_dni(struct userdata *in, struct miesiace *mm) {
	int i;
	int suma_dni = 0;
	int s1, s2;

	if(czyPrzestepny(in->rok) == 1)
		(*(mm+1)).dni_w_mies = 29;
	if(in->is_num == 0)
		in->nmies = resolve_month_number(in->mies_nazw, mm);
	if(czyPrzestepny(in->rok) == 0 && in->nmies == 2 && in->dzien == 29) {
		fputs("Nie ma takiego dnia", stderr);
		exit(1);
	}
	for(i=0; i<in->nmies; i++, mm++) {
		if(i == (in->nmies-1)) {
			s1 = mm->dni_w_mies - in->dzien;
			s2 = mm->dni_w_mies - s1;
			suma_dni += s2;
		}
		else
			suma_dni += mm->dni_w_mies;
	}

	return suma_dni;
}
int resolve_month_number(char *str, struct miesiace *mm) {
	int i;
	int m_number = 0;

	for(i=1; i<=MAX_ROK; i++, mm++)
		if(strstr(mm->nazwa_mies, str) != NULL) {
			m_number = i;
			break;
		}

	return m_number;
}
void MaleLitery(char *str) {
	while(*str) {
		*str = tolower(*str);
		str++;
	}
}
int czyPrzestepny(int rok) {
	int rp = 0;

	if((rok % 4 == 0 && rok % 100 != 0) || rok % 400 == 0)
		rp = 1;
	else
		rp = 0;

	return rp;
}
